Skip to main content

Wallet API

To help users understand the key components from @bagpipes/wallet, here is detailed documentation for each component used in the example.

Components​


WalletContextProvider​

Description​

The WalletContextProvider is a context provider component that wraps your application and supplies wallet-related context values. It manages the wallet connections, accounts, and network states.

Usage​

Wrap your root component or the part of your app where you need wallet functionalities with WalletContextProvider.

import { WalletContextProvider } from '@bagpipes/wallet';

function App() {
return (
<WalletContextProvider>
{/* Your app components */}
</WalletContextProvider>
);
}

Props​

  • children: React nodes to render within the provider.

Example​

import React from 'react';
import { WalletContextProvider } from '@bagpipes/wallet';
import MainApp from './MainApp';

function App() {
return (
<WalletContextProvider>
<MainApp />
</WalletContextProvider>
);
}

export default App;

WalletContext​

Description​

WalletContext provides access to the wallet state and methods throughout your application. It includes information about the connected wallet, accounts, and methods to interact with the wallet.

Usage​

Use React's useContext hook to access the WalletContext.

import { useContext } from 'react';
import { WalletContext } from '@bagpipes/wallet';

function MyComponent() {
const walletContext = useContext(WalletContext);

// Access wallet context values
const { wallet, accounts } = walletContext;

// Use wallet methods
const disconnectWallet = walletContext.disconnectWallet;

return (
<div>
{/* Your component code */}
</div>
);
}

Available Properties and Methods​

  • wallet: Information about the connected wallet.
  • accounts: Array of connected accounts.
  • connectWallet(): Method to connect a wallet.
  • disconnectWallet(): Method to disconnect the wallet.
  • evmWallet: Information about connected EVM wallets (if applicable).
  • walletType: Type of the connected wallet.

Example​

import { useContext } from 'react';
import { WalletContext } from '@bagpipes/wallet';

function AccountInfo() {
const { wallet, accounts, disconnectWallet } = useContext(WalletContext);

if (!wallet) {
return <p>No wallet connected</p>;
}

return (
<div>
<h2>Connected Wallet: {wallet.title}</h2>
<h3>Accounts:</h3>
{accounts.map((account) => (
<p key={account.address}>{account.address}</p>
))}
<button onClick={disconnectWallet}>Disconnect</button>
</div>
);
}

SelectWalletModal​

Description​

SelectWalletModal is a modal component that displays a list of available wallets for the user to select and connect. It handles the UI for wallet selection and initiates the connection process.

Usage​

Include SelectWalletModal somewhere in your app (e.g., at the root level within WalletContextProvider).

import { SelectWalletModal } from '@bagpipes/wallet';

function App() {
return (
<WalletContextProvider>
{/* Your app components */}
<SelectWalletModal theme="light" debug={false} />
</WalletContextProvider>
);
}

Props​

  • theme: The theme of the modal ("light" or "dark").
  • debug: If true, enables debug mode for additional logging.

Example​

<SelectWalletModal theme="light" debug={false} />

OpenSelectWallet​

Description​

OpenSelectWallet is a context that provides a method to open the SelectWalletModal from anywhere within your component tree.

Usage​

Use useContext to access OpenSelectWallet, and then call its open method to display the wallet selection modal.

import { useContext } from 'react';
import { OpenSelectWallet } from '@bagpipes/wallet';

function ConnectWalletButton() {
const selectWallet = useContext(OpenSelectWallet);

const handleConnect = () => {
selectWallet.open();
};

return <button onClick={handleConnect}>Connect Wallet</button>;
}

Example​

import { useContext } from 'react';
import { Button } from 'antd';
import { OpenSelectWallet } from '@bagpipes/wallet';

function ConnectWalletButton() {
const selectWallet = useContext(OpenSelectWallet);

return (
<Button onClick={selectWallet.open}>Connect Wallet</Button>
);
}

WalletWidget​

Description​

WalletWidget is a component that displays the connected wallet's information, including the selected account and balance. It provides a user-friendly interface for users to view their wallet status.

Usage​

Include WalletWidget where you want to display wallet information, such as in a header.

import { WalletWidget } from '@bagpipes/wallet';

function Header() {
return (
<header>
{/* Other header elements */}
<WalletWidget />
</header>
);
}

Example​

import { WalletWidget } from '@bagpipes/wallet';

function WalletWidgetWrapper() {
return (
<div className="wallet-widget-wrapper">
<WalletWidget />
</div>
);
}

export default WalletWidgetWrapper;

WalletIcon​

Description​

WalletIcon is a component that renders a wallet icon, useful for buttons or indicators related to wallet actions.

Usage​

Import WalletIcon and include it in your components.

import { WalletIcon } from '@bagpipes/wallet';

function ConnectWalletButton() {
return (
<button>
<WalletIcon /> Connect Wallet
</button>
);
}

Example​

import { WalletIcon } from '@bagpipes/wallet';

function Header() {
return (
<button className="header-wallet-btn">
<WalletIcon /> Connect Wallet
</button>
);
}

Additional Notes

  • Ensure you have the required peer dependencies installed, such as React and React DOM versions compatible with the library.
  • Style the components as needed to match your application's design.
  • Explore the @bagpipes/wallet documentation for more advanced usage and customization options.